import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class fileDemo4 {
    //String[] list() 返回File对象代表的目录下的所有文件名
    public static void main1(String[] args) {
        File file = new File(".");
        String[] files = file.list();
        System.out.println(Arrays.toString(files));
    }
//    给你一个list方法,如何实现,遍历一个目录中的所有文件(包含子目录中的文件)

    //通过递归的方式,来罗列出指定目录中的所有文件路径
    public static List<String> result = new ArrayList<>();
    public static void getAllFiles(String basePath){
        File file = new File(basePath);

        if(file.isFile()){
//            result.add(file.getName());
            result.add(basePath);
            return;
        }else if(file.isDirectory()){
            String[] files = file.list();
            for (String s:files){
                getAllFiles(basePath + '/' + s);
            }
        }else{
            //当前文件既不是普通文件,也不是目录.这个情况暂时不考虑
            //这样的情况确实存在(scoket文件,管道文件,设备块文件...)
        }


    }

    public static void main(String[] args) {
        getAllFiles(".");
        for(String s:result){
            System.out.println(s);
        }
    }
}
